#pragma once
#include "logger_api.hpp"
#include "core/log_entry.hpp"
#include <nlohmann/json.hpp>


class JsonFormatter : public IFormatter {
public:
    JsonFormatter() : m_formatterName("JsonFormatter") {}
    std::string format(const LogEntry& entry) const override;
    std::string getName() override { return m_formatterName; }

private:
    std::string m_formatterName;
    std::string levelToString(LogLevel level) const;
};
